#include<bits/stdc++.h>
using namespace std;
int a[100005][3],b[100005];
int c[100005][3],d[100005];
int n,m,l,v;
int pd(int x,double y,int z,int j)
{
    int xx=0,yy,i=0;
    while(x<=l||y!=0)
    {

        if(y>v&&x==0) xx=x;
        x++;
        i++;
        y=sqrt(y+2*z*i);
        if(xx!=0&&y<v&&yy==0) yy=x;
    }
    for(i=1;i<=m;i++)
        if(b[i]>=xx&&b[i]<yy)
        {
            c[j][0]=xx;
            c[j][1]=yy;
            c[j][2]=1;
            return 1;
        }
    return 0;
}
void zs()
{
    c[100005][3]={};
    d[100005]={};
    int i,j,s,k=0,f=0;
    cin>>n>>m>>l>>v;
    s=0;
    for(i=1;i<=n;i++)
    {
        cin>>a[i][0]>>a[i][1]>>a[i][2];
        if(a[i][1]!=0) f=1;
    }
    if(f==0){
        cout<<0<<" "<<0<<endl;
        return ;
    }
    for(i=1;i<=n;i++)
        if(pd(a[i][0],a[i][1],a[i][1],i)==1)
        {
        k++;
        }
        for(i=1;i<=n;i++)
        {
            if(c[i][2]==1)
            {
            for(j=1;j<=m;j++)
        {
            if(b[j]>=c[i][0]&&b[j]<c[i][1]) {
                if(d[j]==0) {s++;
                d[j]==1;
                }
            }
        }
            }
        }
    cout<<n<<" "<<m/2;
}
int main()
{
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    int t,i;
    cin>>t;
    for(i=1;i<=t;i++)
    {
        zs();
    }
}
